package com.fastloan.safe.mgt.auth.service;

import com.fastloan.safe.core.param.RoleTypeEnum;
import com.fastloan.safe.mgt.auth.model.CmuRole;
import com.fastloan.safe.mgt.root.model.vo.DefFunTreeVo;
import com.kawins.base.BaseService;

import java.util.List;

/**
 * @author rankai
 *         createTime 2017-09-2017/9/25 16:20
 */
public interface CmuRoleService extends BaseService<CmuRole> {

    /**
     * 根据用户ID获取用户角色信息
     *
     * @param userId
     * @return
     */
    List<String> selectRole(String userId);

    /**
     * 获得机构所拥有的功能树
     *
     * @return
     */
    List<DefFunTreeVo> selectAll2Tree();

    /**
     * 获得机构所拥有的功能树,并标识该角色拥有的功能
     *
     * @param roleId
     * @return
     */
    List<DefFunTreeVo> selectAll2TreeCheck(String roleId);

    /**
     * 增加角色
     *
     * @param cmuRole
     * @param funIds
     */
    void insertWithFuns(CmuRole cmuRole, String[] funIds);

    /**
     * 更新角色
     *
     * @param cmuRole
     * @param funIds
     */
    void updateWithFuns(CmuRole cmuRole, String[] funIds);

    /**
     * 根据用户ID获取用户角色
     *
     * @param userId
     * @return
     */
    List<CmuRole> selectByUserId(String userId);

    /**
     * 根据角色类型获取角色列表
     *
     * @return
     */
    List<CmuRole> selectByRoleType(RoleTypeEnum roleTypeEnum);
}
